home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
DJGPP
/
BCCGRX12.ZIP
/
contrib
/
bcc2grx
/
src
/
bccgrx15.c
< prev
next >
Wrap
C/C++ Source or Header
|
1993-05-22
|
2KB
|
59 lines
/*
* BCC2GRX - Interfacing Borland based graphics programs to LIBGRX
* Copyright (C) 1993 Hartmut Schirmer
*
* see bccgrx.c for details
*/
#include "bccgrx00.h"
/* ATTENTION : Check this definition against LIBGRX/src/interrup.h !! */
# include <sys/registers.h>
extern void int10(REGISTERS *regs);
struct palettetype __gr_EGAdef =
{ size:16, colors:{EGA_BLACK, EGA_BLUE, EGA_GREEN, EGA_CYAN, EGA_RED,
EGA_MAGENTA, EGA_BROWN, EGA_LIGHTGRAY, EGA_DARKGRAY,
EGA_LIGHTBLUE, EGA_LIGHTGREEN, EGA_LIGHTCYAN,
EGA_LIGHTRED, EGA_LIGHTMAGENTA, EGA_YELLOW, EGA_WHITE}};
static struct palettetype *AktPal = &__gr_EGAdef;
static struct palettetype UsrPal;
/* ----------------------------------------------------------------- */
void getpalette(struct palettetype *palette)
{
_DO_INIT_CHECK;
memcpy( palette, AktPal, sizeof(struct palettetype));
}
/* ----------------------------------------------------------------- */
void setallpalette(struct palettetype *palette)
{
int i;
_DO_INIT_CHECK;
for (i=0; i < palette->size; ++i)
setpalette( i, palette->colors[i]);
}
/* ----------------------------------------------------------------- */
void setpalette(int colornum, int color)
{
REGISTERS regs;
colornum &= 0x0f;
color &= 0x3f;
regs.ax = 0x1000;
regs.bx = colornum | (color << 8);
int10(®s);
_DO_INIT_CHECK;
if (AktPal == &__gr_EGAdef) {
AktPal = &UsrPal;
memcpy( &UsrPal, &__gr_EGAdef, sizeof(UsrPal));
}
UsrPal.colors[colornum] = color;
}